package com.nengchuan.kbms.dfs.service;

import com.nengchuan.kbms.common.IPageService;
import com.nengchuan.kbms.dfs.entity.dto.DataFileTagAttrDTO;
import com.nengchuan.kbms.dfs.entity.dto.DataTagAttrDTO;
import com.nengchuan.kbms.dfs.entity.dto.DataTagAttrListDTO;
import com.nengchuan.kbms.dfs.entity.dto.DataTagAttrSortSwapDTO;
import com.nengchuan.kbms.dfs.entity.po.DataTagAttr;
import com.nengchuan.kbms.dfs.entity.po.DataTagAttrOption;
import com.nengchuan.kbms.dfs.entity.vo.DataTagAttrVO;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 标签属性 服务类
 * </p>
 *
 * @author abe
 * @since 2020-04-03
 */
public interface DataTagAttrService extends IPageService<DataTagAttr> {

    /**
     * 获取元数据属性详情
     * @param id 属性id
     */
    DataTagAttrVO getAttr(Long id);

    /**
     * 新增元数据属性
     */
    Long saveAttr(DataTagAttrDTO dto);

    /**
     * 元数据属性修改
     */
    boolean updateAttr(DataTagAttrDTO dto);

    /**
     * 元数据属性删除
     */
    boolean deleteAttr(Serializable id);

    /**
     * 排序交换
     */
    boolean swap(DataTagAttrSortSwapDTO dto);

    /**
     * 元数据属性列表
     */
    List<DataTagAttr> listAttr(DataTagAttrListDTO dto);

    /**
     * 保存文件和标签属性关联表
     */
    void saveFileTagAttr(DataFileTagAttrDTO dataFileTagAttrDTO);

}
